
/* 合法uri*/
export function validateURL(textval) {
  const urlregex = /^(https?|ftp):\/\/([a-zA-Z0-9.-]+(:[a-zA-Z0-9.&%$-]+)*@)*((25[0-5]|2[0-4][0-9]|1[0-9]{2}|[1-9][0-9]?)(\.(25[0-5]|2[0-4][0-9]|1[0-9]{2}|[1-9]?[0-9])){3}|([a-zA-Z0-9-]+\.)*[a-zA-Z0-9-]+\.(com|edu|gov|int|mil|net|org|biz|arpa|info|name|pro|aero|coop|museum|[a-zA-Z]{2}))(:[0-9]+)*(\/($|[a-zA-Z0-9.,?'\\+&%$#=~_-]+))*$/;
  return urlregex.test(textval);
}

/* 是否为字母*/

export function validAlphabets(str) {
  const reg = /^[A-Za-z]+$/
  return reg.test(str)
}

/* 小写字母*/
export function validateLowerCase(rule, value, callback) {
  const reg = /^[a-z]+$/;
  return reg.test(value);
}

/* 大写字母 */
export function validateUpperCase(rule, value, callback) {
  const reg = /^[A-Z]+$/;
  return reg.test(value);
}

/* 大小写字母 */
export function validatAlphabets(rule, value, callback) {
  const reg = /^[A-Za-z]+$/;
  return reg.test(value);
}




/* 验证账号字符长度 */
export function validateUsername(rule, value, callback) {
  if (value.length < 6 || value.length > 20) {
    return callback(new Error('用户名不得小于6个或大于20个字符!'))
  } else {
    callback()
  }
}

/* 是否合法IP地址 */
export function validateIP(rule, value, callback) {
  if (value === '' || value === undefined || value == null) {
    callback()
  } else {
    const reg = /^(d{1,2}|1dd|2[0-4]d|25[0-5]).(d{1,2}|1dd|2[0-4]d|25[0-5]).(d{1,2}|1dd|2[0-4]d|25[0-5]).(d{1,2}|1dd|2[0-4]d|25[0-5])$/
    if ((!reg.test(value)) && value !== '') {
      callback(new Error('请输入正确的IP地址'))
    } else {
      callback()
    }
  }
}

/* 是否手机号码或者固话 */
export function validatePhoneTwo(rule, value, callback) {
  const reg = /^((0d{2,3}-d{7,8})|(1[34578]d{9}))$/
  if (value === '' || value === undefined || value == null) {
    callback()
  } else {
    if ((!reg.test(value)) && value !== '') {
      callback(new Error('请输入正确的电话号码或者固话号码'))
    } else {
      callback()
    }
  }
}

/* 是否固话*/
export function validateTelephone(rule, value, callback) {
  const reg = /0d{2}-d{7,8}/
  if (value === '' || value === undefined || value == null) {
    callback()
  } else {
    if ((!reg.test(value)) && value !== '') {
      callback(new Error('请输入正确的固话（格式：区号+号码,如010-1234567）'))
    } else {
      callback()
    }
  }
}

/* 手机号码验证规则：11位数字，以1开头*/
export function validateMobile(rule, value, callback) {
  // var myreg=/^[1][3,4,5,7,8][0-9]{9}$/;
  const reg = /^1\d{10}$/;
  if( value && !reg.test(value)){
    callback(new Error('请输入正确的手机号码'))
  }else{
    callback()
  }
}

/* 简单身份证号验证 */
export function validateIdcardNo(rule ,card ,callback) {
  // 身份证号码为15位或者18位，15位时全为数字，18位前17位为数字，最后一位是校验位，可能为数字或字符X
  var reg = /(^\d{15}$)|(^\d{18}$)|(^\d{17}(\d|X|x)$)/;

  if( card && !reg.test(card)){
    callback(new Error('请输入正确的身份证号'))
  }else{
    callback()
  }
}

/* 是否为邮箱*/
export function validEmail(rule ,value ,callback) {
  const reg = /^(([a-zA-Z0-9_\-\.]+)@([a-zA-Z0-9_\-\.]+)\.([a-zA-Z]{2,5}){1,25})$/
  if (value && !reg.test(value)) {
    callback(new Error('请输入正确的邮箱地址'))
  } else {
    callback()
  }
}

/* 正整数校验 */
export function integerP(rule, value, callback) {
  if (value && !(/^[1-9]\d*$/).test(value)) {
    callback(new Error('只能填写正整数'))
  } else {
    callback()
  }
}

